Currently available computers may have processors that contain multiple instruction execution units, referred to as cores. Each core may process a stream of instructions, relatively independently from one another. More sophisticated computers may contain multiple processors, each of which may contain multiple cores. Multi-threaded application programs may make use of the plurality of independent cores by having each thread of the application program run on a different core. Thus, the individual threads may truly execute concurrently, as each core processes instructions independently of the other cores.